package magda.edytor.dane;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

import java.io.*;

public class Odczyt {
	
	static void odczytLigi(FileReader fr)
	{ 	
		LigaGUI ligagui= new LigaGUI();
		
		KlubGUI klubgui= new KlubGUI();
		klubgui.setLigaGUI(ligagui);
		DruzynaGUI druzynagui= new DruzynaGUI();
		druzynagui.setKlubGUI(klubgui);
		ZawodnikGUII zawodnikgui = new ZawodnikGUII();
		zawodnikgui.setDruzynaGUI(druzynagui);
		ligagui.setKlubGUI(klubgui);
		ligagui.setVisible(true);
		
	String linia = "";
 Map<Object, Liga> idLigiMap = null;
 Map<Object, Klub> idKlubuMap = null;
 Map<Object, Druzyna> idDruzynyMap = null;

 BufferedReader ligi = new BufferedReader(fr);
	// ODCZYT KOLEJNYCH LINII Z PLIKU:
	try {
		idLigiMap = new HashMap <Object, Liga>();
	  while((linia = ligi.readLine()) != null){
	    
	     StringTokenizer token = new StringTokenizer(linia);
	     token.nextToken(",");
	     String id=token.nextElement().toString();
	     ligagui.liga.setId(Integer.parseInt(id));
	     String nazwa=token.nextElement().toString();
	     ligagui.liga.setNazwa(nazwa);

	     idLigiMap.put(new Integer (id), ligagui.liga);
	     ligagui.getTextField().setText(nazwa);
	     
	  }
	 } catch (IOException e) {
	     System.out.println("BŁAD ODCZYTU Z PLIKU!");
	     System.exit(2);
	 }     
	  try { 
		  fr.close();
	  }
	  catch (IOException e){
		  System.out.println("Błąd przy zamykaniu");
		  System.exit(3);
	  }
//888888888888888888888888888888888888888888888888888888888888888888888888
	
	  FileReader kl = null;
		 try {
		 	kl = new FileReader("kluby.csv");
		 } catch (FileNotFoundException e1) {
		 	// TODO Auto-generated catch block
		 	e1.printStackTrace();
		 }
	  
	  BufferedReader kluby = new BufferedReader(kl);
	// ODCZYT KOLEJNYCH LINII Z PLIKU:
	try {
		idKlubuMap = new HashMap <Object, Klub>();
	  while((linia = kluby.readLine()) != null){
	    
	     StringTokenizer token = new StringTokenizer(linia);
	     token.nextToken(",");
	     Klub klub=new Klub();	
	     String idLigi=token.nextElement().toString();
	     String id=token.nextElement().toString();
	     klub.setId(Integer.parseInt(id));
	     String nazwa=token.nextElement().toString();
	     klub.setNazwa(nazwa);
	     ligagui.getLiga().dodajKlub(klub);

	     idKlubuMap.put(new Integer (id), klub);
	     
	  }
	 } catch (IOException e) {
	     System.out.println("BŁAD ODCZYTU Z PLIKU!");
	     System.exit(2);
	 }     
	  try { 
		  kl.close();
	  }
	  catch (IOException e){
		  System.out.println("Błąd przy zamykaniu");
		  System.exit(3);
	  }
	
//8888888888888888888888888888888888888888888888888888
	 
	 FileReader dr = null;
	 try {
	 	dr = new FileReader("druzyny.csv");
	 } catch (FileNotFoundException e1) {
	 	// TODO Auto-generated catch block
	 	e1.printStackTrace();
	 }
	 BufferedReader druzyny = new BufferedReader(dr);
	 //ODCZYT KOLEJNYCH LINII Z PLIKU:
	 try {
		 idDruzynyMap = new HashMap <Object, Druzyna>();
	 while((linia = druzyny.readLine()) != null){
	   System.out.println(linia);
	   StringTokenizer token = new StringTokenizer(linia);
	   token.nextToken(",");
	   Druzyna druzyna=new Druzyna();
	   String idKlubu=token.nextElement().toString();
	   String id=token.nextElement().toString();
	   druzyna.setId(Integer.parseInt(id));
	   String nazwa=token.nextElement().toString();
	   druzyna.setNazwa(nazwa);
	   Klub klubDruzyny = idKlubuMap.get(Integer.parseInt(idKlubu));
	   klubDruzyny.dodajDruzyne(druzyna);
	   idDruzynyMap.put(new Integer(id), druzyna);
	   druzynagui.list.setListData(klubgui.klub.getDruzyny());

	   
	 }
	 } catch (IOException e) {
	   System.out.println("BŁĄD ODCZYTU Z PLIKU!");
	   System.exit(2);
	 }

	// ZAMYKANIE PLIKU
	try {
	  dr.close();
	 } catch (IOException e) {
	      System.out.println("BĹ�Ä„D PRZY ZAMYKANIU PLIKU!");
	      System.exit(3);
	     }
	
	//8888888888888888888888888888888888888888888888888888888888888888
	
	FileReader zw = null;
	
	try{
		System.out.println("działa");
		zw = new FileReader("zawodnicy.csv");
	}
	catch (FileNotFoundException e1){
		System.out.println("nie działa");
		// TODO Auto-generated catch block
		e1.printStackTrace();
	}
	BufferedReader zawodnicy = new BufferedReader (zw);
	//ODCZYT KOLEJNYCH LINII Z PLIKU:
	
	try{
		while((linia = zawodnicy.readLine()) != null){
			System.out.println(linia);
			StringTokenizer token = new StringTokenizer(linia);
			token.nextToken(",");
			Zawodnik zawodnik = new Zawodnik();
			String idDruzyny = token.nextElement().toString();
			System.out.println(idDruzyny);
			String id=token.nextElement().toString();
			zawodnik.setId(Integer.parseInt(id));
			String imie = token.nextElement().toString();
			zawodnik.setImie(imie);
			String nazwisko = token.nextElement().toString();
			zawodnik.setNazwisko(nazwisko);
			String wiek = token.nextElement().toString();
			zawodnik.setWiek(Integer.parseInt(wiek));
			String umiejetnosci = token.nextElement().toString();
			zawodnik.setUmiejetnosci(Double.parseDouble(umiejetnosci));
			
			Druzyna druzynaZawodnika = idDruzynyMap.get(Integer.parseInt(idDruzyny));
			System.out.println(druzynaZawodnika.getNazwa());
			druzynaZawodnika.dodajZawodnika(zawodnik);
		}
	}
	 catch (IOException e) {
		  System.out.println("BŁĄD ODCZYTU Z PLIKU!");
		  System.exit(2);
		}
	// ZAMYKANIE PLIKU
	 try {
	   zw.close();
	  } catch (IOException e) {
	       System.out.println("BŁĄD PRZY ZAMYKANIU PLIKU!");
	       System.exit(3);
	      }
	
	//888888888888888888888888888888888888888888888888888888888888888888888888
	
	  FileReader tr = null;
	  
	  try{
		  System.out.println("czyta trenera");
		  tr = new FileReader("trenerzy.csv");
	  }
	  catch (FileNotFoundException e1) {
		System.out.println("nie czyta trenera");
		// TODO Auto-generated catch block
		e1.printStackTrace();
	  }
	  
	  BufferedReader trenerzy = new BufferedReader(tr);
	  //Odczyt linii z pliku:
	  
	  try{
		
		  while((linia = trenerzy.readLine())!= null){
			  System.out.println(linia);
			  StringTokenizer token = new StringTokenizer(linia);
			  token.nextToken(",");
			  String idDruzyny=token.nextElement().toString();
			  System.out.println(idDruzyny);
			  String imie=token.nextElement().toString();
			  String nazwisko=token.nextElement().toString();
			  Trener trener = new Trener();
			  trener.setImie(imie);
			  trener.setNazwisko(nazwisko);
			  Druzyna druzynaTrenera = idDruzynyMap.get(Integer.parseInt(idDruzyny));
			  druzynaTrenera.setTrener(trener);
			  
		  }
	  } catch (IOException e) {
		  System.out.println("BŁĄD ODCZYTU Z PLIKU!");
		  System.exit(2);
		  }
	  
		  //ZAMYKANIE PLIKU
		  try {
		  tr.close();
		  } catch (IOException e) {
		  System.out.println("BŁĄD PRZY ZAMYKANIU PLIKU!");
		  System.exit(3);
		}
		  
//8888888888888888888888888888888888888888888888888888888888888888888
		  
		  FileReader pr = null;
		  
		  try{
			  System.out.println("czyta prezesa");
			  pr = new FileReader("prezesi.csv");
		  }
		  catch (FileNotFoundException e1) {
			System.out.println("nie czyta prezesa");
			// TODO Auto-generated catch block
			e1.printStackTrace();
		  }
		  
		  BufferedReader prezesi = new BufferedReader(pr);
		  //Odczyt linii z pliku:
		  
		  try{
			  System.out.println("sprawdzenie prezesa1");
			  while((linia = prezesi.readLine())!= null){
				  System.out.println("while odczyt prezesa");

				  System.out.println(linia);
				  StringTokenizer token = new StringTokenizer(linia);
				  token.nextToken(",");
				  String idKlubu=token.nextElement().toString();
				  System.out.println(idKlubu);
				  String imie=token.nextElement().toString();
				  String nazwisko=token.nextElement().toString();
				  Prezes prezes = new Prezes(imie,nazwisko);
				  prezes.setImie(imie);
				  prezes.setNazwisko(nazwisko);
				  Klub klubPrezesa = idKlubuMap.get(Integer.parseInt(idKlubu));
				  klubPrezesa.setPrezes(prezes);
				  
			  }
		  } catch (IOException e) {
			  System.out.println("BŁĄD ODCZYTU Z PLIKU!");
			  System.exit(2);
			  }

			  //ZAMYKANIE PLIKU
			  try {
			  pr.close();
			  } catch (IOException e) {
			  System.out.println("BŁĄD PRZY ZAMYKANIU PLIKU!");
			  System.exit(3);
			}
//88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
			  
			  
			  FileReader bo = null;
			  
			  try{
				  System.out.println("czyta boisko");
				  bo = new FileReader("boiska.csv");
			  }
			  catch (FileNotFoundException e1) {
				System.out.println("nie czyta boiska");
				// TODO Auto-generated catch block
				e1.printStackTrace();
			  }
			  
			  BufferedReader boiska = new BufferedReader(bo);
			  //Odczyt linii z pliku:
			  
			  try{
				 
				  while((linia = boiska.readLine())!= null){
					  System.out.println("while odczyt boisko");
					  System.out.println(linia);
					  StringTokenizer token = new StringTokenizer(linia);
					  token.nextToken(",");
					  String idKlubu=token.nextElement().toString();
					  System.out.println(idKlubu);
					  String powierzchnia=token.nextElement().toString();
					  String nawierzchnia=token.nextElement().toString();
					  Boisko boisko = new Boisko();
					  boisko.setPowierzchnia(Double.parseDouble(powierzchnia));
					  boisko.setNawierzchnia(nawierzchnia);
					  Klub klubBoiska = idKlubuMap.get(Integer.parseInt(idKlubu));
					  klubBoiska.setBoisko(boisko);
					  System.out.println("Boisko while Odczyt");
				  }
			  } catch (IOException e) {
				  System.out.println("BŁĄD ODCZYTU Z PLIKU!");
				  System.exit(2);
				  }

				  //ZAMYKANIE PLIKU
				  try {
				  bo.close();
				  } catch (IOException e) {
				  System.out.println("BŁĄD PRZY ZAMYKANIU PLIKU!");
				  System.exit(3);
				}
			  
	  }
}
